﻿using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;

// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("米观园-MIUI主题制作工具")]
[assembly: AssemblyDescription("欢迎使用《米观园-MIUI主题制作工具》")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("积木工场")]
[assembly: AssemblyProduct("米观园-MIUI主题制作工具")]
[assembly: AssemblyCopyright("Copyright © 积木工场 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型，
// 则将该类型上的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]

//若要开始生成可本地化的应用程序，请在 
//<PropertyGroup> 中的 .csproj 文件中
//设置 <UICulture>CultureYouAreCodingWith</UICulture>。例如，如果您在源文件中
//使用的是美国英语，请将 <UICulture> 设置为 en-US。然后取消
//对以下 NeutralResourceLanguage 特性的注释。更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。

//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]


[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //主题特定资源词典所处位置
    //(在页面或应用程序资源词典中 
    // 未找到某个资源的情况下使用)
    ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
    //(在页面、应用程序或任何主题特定资源词典中
    // 未找到某个资源的情况下使用)
)]


// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本 
//      内部版本号
//      修订号
//
// 可以指定所有这些值，也可以使用“内部版本号”和“修订号”的默认值，
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

#region 程序集属性访问器
namespace Bricks.MiuiThemeMaker.MiuiThemeMaker
{
    using System;
    using System.Collections.Generic;
    using System.Reflection;

    /*********************************************************
     * 1.版权：积木工场 Bricks Factory
     * 2.作用：程序集属性访问器
     * 3.创建人：罗泽新
     * 4.创建日期：2012-04-27
     * 5.最后修改人：罗泽新
     * 6.最后修改日期：2012-04-27
     * 7.修改项目：
     * *******************************************************/
    sealed class AssemblyInfo
    {
        public static readonly AssemblyInfo Instance = new AssemblyInfo();

        private AssemblyInfo() { }

        string title = null;
        string version = null;
        string description = null;
        string product = null;
        string copyright = null;
        string company = null;
        string versionInner = null;

        /// <summary>
        /// 标题
        /// </summary>
        public string AssemblyTitle
        {
            get
            {
                if (title == null)
                {
                    object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
                    if (attributes.Length > 0)
                    {
                        AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
                        if (titleAttribute.Title != "")
                            title = titleAttribute.Title;
                    }
                    if (title == null)
                        title = System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
                }
                return title;
            }
        }

        /// <summary>
        /// 完整的版本号
        /// </summary>
        public string AssemblyVersion
        {
            get
            {
                if (version == null)
                    version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
                return version;
            }
        }

        /// <summary>
        /// 含内部版本的版本号
        /// </summary>
        public string AssemblyVersionInner
        {
            get
            {
                if (versionInner == null)
                {
                    if (AssemblyVersion != null)
                    {
                        int idx = AssemblyVersion.LastIndexOf(".");
                        versionInner = idx > 0 ? AssemblyVersion.Substring(0, idx) : AssemblyVersion;
                    }
                    else
                        versionInner = "";
                }
                return versionInner;
            }
        }

        /// <summary>
        /// 项目描述
        /// </summary>
        public string AssemblyDescription
        {
            get
            {
                if (description == null)
                {
                    object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
                    if (attributes.Length == 0)
                        description = "";
                    else
                        description = ((AssemblyDescriptionAttribute)attributes[0]).Description;
                }
                return description;
            }
        }

        /// <summary>
        /// 产品
        /// </summary>
        public string AssemblyProduct
        {
            get
            {
                if (product == null)
                {
                    object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
                    if (attributes.Length == 0)
                        product = "";
                    else
                        product = ((AssemblyProductAttribute)attributes[0]).Product;
                }
                return product;
            }
        }

        /// <summary>
        /// 版权信息
        /// </summary>
        public string AssemblyCopyright
        {
            get
            {
                if (copyright == null)
                {
                    object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
                    if (attributes.Length == 0)
                        copyright = "";
                    else
                        copyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
                }
                return copyright;
            }
        }

        /// <summary>
        /// 公司
        /// </summary>
        public string AssemblyCompany
        {
            get
            {
                if (company == null)
                {
                    object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
                    if (attributes.Length == 0)
                        company = "";
                    else
                        company = ((AssemblyCompanyAttribute)attributes[0]).Company;
                }
                return company;
            }
        }
    }
}
#endregion